/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package org.cip.esymons.eventos.bc;

import java.util.Date;
import java.util.List;
import java.util.Vector;
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import org.cip.esymons.eventos.be.EstimacionParticipantes;
import org.cip.esymons.eventos.be.Preevento;

/**
 *
 * @author Administrador
 */
@Stateless
public class EstimacionParticipantesFacade implements EstimacionParticipantesFacadeLocal {

    @PersistenceContext
    private EntityManager em;

    public void create(EstimacionParticipantes estimacionParticipantes) {
        em.persist(estimacionParticipantes);
    }

    public void edit(EstimacionParticipantes estimacionParticipantes) {
        em.merge(estimacionParticipantes);
    }

    public void remove(EstimacionParticipantes estimacionParticipantes) {
        em.remove(em.merge(estimacionParticipantes));
    }

    public EstimacionParticipantes find(Object id) {
        return em.find(EstimacionParticipantes.class, id);
    }

    public List<EstimacionParticipantes> findAll() {
        return em.createQuery("select object(o) from EstimacionParticipantes as o").getResultList();
    }

    public void eliminarPorEvento(Preevento preEventoSeleccionado) {
        em.createNativeQuery("delete from eca_estimacion_participantes where pre_codigo=?1").setParameter(1, preEventoSeleccionado.getPreCodigo());
    }

    public Integer retornarCantidad(Date fechaIni, Integer tpeCodigo, Integer preCodigo) {
        Integer cant = 0;
        Vector v = new Vector();
        try {
            v = (Vector) em.createNativeQuery("select epaCantidad from eca_estimacion_participantes where pre_codigo=?3 and epaFechaInicio=?1 and tpe_codigo=?2 ")
                    .setParameter(1, fechaIni)
                    .setParameter(2, tpeCodigo)
                    .setParameter(3, preCodigo)
                    .getSingleResult();
            cant = (((Integer) v.get(0)).intValue());
        } catch (Exception e) {
            System.out.println("FATAL: " + e.getMessage());
        }
        return cant;
    }

    //hecho por lizardo
    public Integer retornarUltimaCantidad(Date fechaIni, Integer tpeCodigo, Integer preCodigo) {
        Integer cant = 0;
        Vector v = new Vector();
        try {
            v = (Vector) em.createNativeQuery("call sp_recuperar_cantidad (?,?,?);")
                    .setParameter(1, preCodigo)
                    .setParameter(2, fechaIni)
                    .setParameter(3, tpeCodigo)
                    .getSingleResult();
            cant = (((Integer) v.get(0)).intValue());
        } catch (Exception e) {
            System.out.println("FATAL: " + e.getMessage());
        }
        return cant;
    }
}
